1. Field of the Invention
Embodiments of the present invention relate generally to a three-dimensional (3D) authoring application interface and more specifically to a multiscale 3D reference grid.
2. Description of the Related Art
Conventional reference grids are used in design software application programs to help an end user judge distances between objects and to understand the orientation of the virtual workspace. The challenge is to show reference imagery to the end user that is visible and meaningful in as many viewing conditions as possible, without being too distracting. Reference visualization is significantly more difficult than it may seem, since it spans a huge problem domain with many special cases. Many of the perceptual cues we rely on to understand relative position and distance in the real world are not always easily conveyed in static two-dimensional projections of 3D space. Some of the fundamental difficulties in 3D interaction involve being inside or outside of an object, closeness of the viewpoint to an object, egocentric vs. exocentric thinking in terms of determining what the end user is looking at, and parallel vs. perspective viewing projections.
3D application programs such as video games put significant effort into providing realistic texturing, shading, and shadowing to provide users with depth cues, but these techniques are often not practical while the end user is creating a new 3D model using a 3D authoring application program since the scene content is not constrained. Therefore, authoring application programs must use other means to communicate depth cues that are effective on abstract and/or incomplete 3D scenes.
An approach used by conventional authoring application programs to help users comprehend the spatial relationships between objects in a scene is to display a reference grid centered at the origin of the ground plane. The grid typically shows thicker major lines with thinner minor lines between the major lines. In a parallel viewing projection, the lines are usually drawn to fill the viewport. However, this approach has some problems that limit its utility. For example, depth cues may be explicitly removed to provide consistency in scale for the objects in the scene. The end user may also have difficulty determining whether the viewpoint is above or below the grid and how objects in the scene relate to each other.
In a perspective viewing projection, the grid usually has a fixed number of lines that allow an end user to sense the orientation of the workspace and see the number of grid divisions that are between objects to determine relative distances. However, objects in the scene often fall outside of the fixed-sized grid or completely encompass the grid. Small objects can fall completely between grid lines, removing any relative position cues.
When confronted with an ambiguous 3D scene, an end user often compensates for shortcomings of reference imagery by constructing a mental model of the scene, to clarify the orientation, position, and scale of objects in the scene, by viewing the scene from different viewpoints and garnering depth cues by frequently changing the camera position. Unfortunately, this workflow forces the end user to work primarily from memory to guide future decisions and actions. It also requires a proficiency in mentally transforming and manipulating 3D objects.
As the foregoing illustrates, what is needed in the art is a technique for providing users with continuous orientation, position, and scale reference imagery in 3D application programs.